package com.pechas.game.pirates.others;

import com.pechas.game.pirates.model.SubscriptionLine.FSArmour;
import com.pechas.game.pirates.model.SubscriptionLine.FSCaptain;
import com.pechas.game.pirates.model.SubscriptionLine.FSFirstMate;
import com.pechas.game.pirates.model.SubscriptionLine.FSFood;
import com.pechas.game.pirates.model.SubscriptionLine.FSRaider;
import com.pechas.game.pirates.model.SubscriptionLine.FSSailor;
import com.pechas.game.pirates.model.SubscriptionLine.FSSecondMate;
import com.pechas.game.pirates.model.SubscriptionLine.FSShip;
import com.pechas.game.pirates.model.SubscriptionLine.FSSpy;
import com.pechas.game.pirates.model.SubscriptionLine.FSTargetShip;
import com.pechas.game.pirates.model.SubscriptionLine.FSTargetVillage;
import com.pechas.game.pirates.model.SubscriptionLine.FSWeapon;
import com.pechas.one.constructs.element.Element;
import com.pechas.one.constructs.fields.Field;

public class FieldGenerator extends Element{
	
	public FieldGenerator() {
		generate_model_fields();
	}

	private void generate_model_fields() {
		
		/**
		 * 
		 */
		new Field(ValueConstant.ARMOUR_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSArmour.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.CAPTAIN_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSCaptain.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.FIRSTMATE_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSFirstMate.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.FOOD_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSFood.class);
			}
			
		};
		
		
		/**
		 * 
		 */
		new Field(ValueConstant.RAIDER_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSRaider.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.SAILOR_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSSailor.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.SECONDMATE_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSSecondMate.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.SHIP_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSShip.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.SPY_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSSpy.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.TARGETSHIP_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSTargetShip.class);
			}
			
		};
		
		/**
		 * 
		 */
		
		new Field(ValueConstant.TARGETVILLAGE_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSTargetVillage.class);
			}
			
		};
		
		/**
		 * 
		 */
		new Field(ValueConstant.WEAPON_FIELD){

			@Override
			public void defineSubscriptionLines() {
				addSubscriptionLine(FSWeapon.class);
			}
			
		};
	}

}
